<?php
class PerfilController extends AppController 
{
	var $name = 'Perfil';
	var $layout =  "ajax";
	var $components = array('Interfaz','Vista');
	var $helpers = array('Interfaz','Vista','Ayuda');
	var $uses = array('Perfil','Organizacion','Usuario_sistema','Funcionario','Logsql');
	
	public function beforeFilter(){
  		$this->validar();
  	}
  	
 	function index()
	{
 	}

 	 public function listado_usuarios($busq=null) {	 		
		//print $this->Interfaz->id($_SESSION['sistema_id']);
 		$this->permisos_menu_individual('configuracion');
		$total=$this->Usuario_sistema->find('count',array('conditions'=> array("Usuario_sistema.id >"=>'0',"Usuario_sistema.sistema_id "=>$this->Interfaz->id($_SESSION['sistema_id']))));
		$this->Usuario_sistema->recursive=2;
		$data=$this->Usuario_sistema->find('all',array('conditions'=> array("Usuario_sistema.id >"=>'0',"Usuario_sistema.sistema_id "=>$this->Interfaz->id($_SESSION['sistema_id'])),'limit'=>MAX_PAGI));
		
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);
		$this->set('busq',$busq);
		$this->Vista->title('Usuarios Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
	}


	public function nuevo($id=null,$cedula=null,$nombres=null) 
	{	
		$id=$this->Interfaz->id($id);
		$this->permisos_opcion_individual('configuracion','estatus','nuevo'); 
		$this->set('div','vista');
		$this->set('divlistado','vista');
		$this->set('id_usuario',$id);
		$this->set('cedula',$cedula);
		$this->set('nombres',$nombres);
		$this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ))));
	}


	public function guardar($vent=null) {
		$this->permisos_opcion_individual('configuracion','estatus','nuevo'); // mensaje que se quiere mostrar
		$data=$this->request->data;
        extract($data);   
        if(!empty($usuario_id) && !empty($unidad_id)){    
		    $valida=$this->Perfil->find('all', array('conditions'=> array("Perfil.usuario_id"=>$usuario_id,"Perfil.organizacion_id"=>$unidad_id)));  
		    if(count($valida)>0){

 				$this->Vista->mensaje("Ya posee asignada esta unidad",'ERROR');
		    }
		    else{
				$this->Perfil->query('BEGIN WORK');
			    $d['Perfil']['usuario_id']=$usuario_id;
			    $d['Perfil']['organizacion_id']=$unidad_id;
				$d['Perfil']['estatus']=1;
		
					if($this->Perfil->save($d)){
						$this->Vista->mensaje("Organizacion Asignada Exitosamente!!!",'EXITO');
						$this->Perfil->query('COMMIT');
					//	$this->Vista->cerrar_ventana($vent);
					}
					else{
						$this->Vista->mensaje("Ocurrio un error Asignado la Organizacion",'ERROR');
						$this->Perfil->query('ROLLBACK');	
					}
		    }

	    }
		else{
			$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
		}				
		$this->listado_usuarios();
		$this->render('listado_usuarios');
	}

	public function ver_unidades_usuario($id=null,$cedula=null,$nombres=null) 
	{	
		$this->permisos_opcion_individual('configuracion','estatus','ver'); 
		$id=$this->Interfaz->id($id);
		$this->set('div','vista');
		$this->set('divlistado','vista');
		$this->set('id_usuario',$id);
		$this->set('cedula',$cedula);
		$this->set('nombres',$nombres);
		$this->set('data',$this->Perfil->find('all', array('conditions'=> array("Perfil.usuario_id"=>$id)))); 
	

	}

		public function modificar_unidades_usuario($id=null,$cedula=null,$nombres=null) 
	{	
		$this->permisos_opcion_individual('configuracion','estatus','ver'); 
		$id=$this->Interfaz->id($id);
		$this->set('div','vista');
		$this->set('divlistado','vista');
		$this->set('id_usuario',$id);
		$this->set('cedula',$cedula);
		$this->set('nombres',$nombres);
		$this->set('data',$this->Perfil->find('all', array('conditions'=> array("Perfil.usuario_id"=>$id)))); 

	}

	    public function modificar_estatus($id=null) 
	{	
		$this->permisos_opcion_individual('configuracion','estatus','modificar'); 
		$id=$this->Interfaz->id($id);
		  if(isset($id))
                {
                        $estatus= $this->Perfil->find('first',array('fields'=>array('Perfil.estatus'), 'conditions' => array('Perfil.id' =>$id)));
                        if($estatus['Perfil']['estatus']==1)
                        {
                                $est_n=0;
                                $msj="Unidad para el Usuario Desactivada Exitosamente";
                        }
                        else
                        {
                                $est_n=1;
                                $msj="Unidad para el Usuario Activada Exitosamente";
                        }
                        $d['Perfil']['id']=$id;
                        $d['Perfil']['estatus']=$est_n;
                        if($this->Perfil->save($d))
                        {
                                $this->Vista->mensaje($msj,'EXITO');
                                $this->set('esta',$est_n);
                          		$this->log();      
                        }
                        else
                        {
                                $this->Vista->mensaje('Ocurrio un error Intente nuevamente','Error');
                                $this->set('esta',$estatus['Perfil']['estatus']);
                        }
                        $this->set('id',$this->Interfaz->id($id));
                        
                }
                else
                {
                        $this->set('esta',$estatus['Perfil']['estatus']);$this->set('id',$id);
                        $this->Vista->mensaje('Error estas tratando de violar la seguridad AGROPATRIA','ALERTA');
                }
      

	}

	public function filtro_usuarios() {
	}

	public function listado_filtrado_usuarios($vent=null) {
		$this->permisos_menu_individual('configuracion');
		$data=$this->request->data;
		$busq='';
		$this->set('opciones',$this->serializador($data,2));
		extract($data);
		$condiciones_funcionario['Funcionario.estatus >']=0;
        $condiciones_funcionario['Funcionario.estatus']=1;
		if(!empty($rif) ){ $condiciones_funcionario['Funcionario.cedula ilike']="%$rif%"; $busq=$rif;}
		if(!empty($nombre)){ $condiciones_funcionario['Funcionario.nombre ilike']="%$nombre%"; $busq=$nombre;}
		$funcionario=$this->Funcionario->find('all',array('fields'=>array('Funcionario.id'),'conditions'=> $condiciones_funcionario,'limit'=>MAX_PAGI));
        $id_funcionario=array();
        foreach ($funcionario as $valor) {
        	 $id_funcionario[]=$valor['Funcionario']['id'];
        }
     
		$condiciones['Usuario_sistema.id >']=0;
		$condiciones['Usuario_sistema.sistema_id']=$this->Interfaz->id($_SESSION['sistema_id']);
		$condiciones['Usuario.funcionario_id']=$id_funcionario;
		$total=$this->Usuario_sistema->find('count',array('conditions'=> $condiciones));
		$this->Usuario_sistema->recursive=2;
		$data=$this->Usuario_sistema->find('all',array('conditions'=> $condiciones,'limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);$this->set('busq',$busq);
		$this->Vista->title('Usuarios Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
		if($total>0)
		$this->Vista->cerrar_ventana($vent);
	}

}
